package com.example.kotlindemo620

import android.app.Application
import android.content.ContentValues.TAG
import android.util.Log
import com.databuffrum.DataBuffRUM
import com.databuffrum.DataBuffRumConfig
import com.databuffrum.bean.RumConfigDTO
import com.databuffrum.crash.CrashHandler
import com.databuffrum.utils.AppUtils
import com.handler.GlobalHandler

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        DataBuffRUM.setAPPKey(this,"e6be3983-b936-4218-a458-a4a731baa55d");
        DataBuffRUM.setAPPHost(this,"https://192.168.50.110/");
        DataBuffRUM.PrintLog(this,true);
        DataBuffRUM.setUserID(this,"");
        DataBuffRUM.init(this);
//        DataBuffRumConfig.getInstance(this);
//        // 获取DataBuffRumConfig实例
//        val config = DataBuffRumConfig.getInstance(this)
//
//        Log.d(TAG,"qwertyuiop")
//        // 设置消息监听，接收服务器配置结果
//        GlobalHandler.getInstance().setHandleMsgListener { msg ->
//            if (msg.what == 20) { // 配置获取成功的消息标识
//                val configDTO = msg.obj as? RumConfigDTO
//                configDTO?.let { onServerConfigReceived(it) }
//            }
//        }
//
//        // 调用服务器配置获取接口
//        config.getServerConfig()
    }

//    /**
//     * 服务器配置接收回调（在主线程处理）
//     */
//    private fun onServerConfigReceived(configDTO: RumConfigDTO) {
//        // 控制台打印配置结果
//        println("===== 服务器配置验证开始 =====")
//        Log.d(TAG, "服务器配置获取成功，响应码: 200")
//        Log.d(TAG, "配置项 - enabled: ${configDTO.enabled}")
//        Log.d(TAG, "配置项 - crashEnabled: ${configDTO.crashEnabled}")
//        Log.d(TAG, "配置项 - anrEnabled: ${configDTO.anrEnabled}")
//        Log.d(TAG, "配置项 - pageEnabled: ${configDTO.pageEnabled}")
//        Log.d(TAG, "配置项 - appId: ${configDTO.appId}")
//        println("===== 服务器配置验证结束 =====")
//
//        // 验证配置是否生效
//        verifyConfig生效(configDTO)
//    }
//
//    /**
//     * 验证配置功能是否按配置生效
//     */
//    private fun verifyConfig生效(configDTO: RumConfigDTO) {
//        // 1. 基础配置生效验证
//        if (configDTO.enabled) {
//            Log.d(TAG, "配置已启用，开始初始化采集功能")
//
//            // 2. Crash采集功能验证
//            if (configDTO.crashEnabled) {
//                Log.d(TAG, "✅ Crash采集功能已启用")
//                // 验证CrashHandler是否初始化（示例：检查单例是否非空）
//                if (CrashHandler.getInstance() != null) {
//                    Log.d(TAG, "✅ CrashHandler初始化成功")
//                } else {
//                    Log.e(TAG, "❌ CrashHandler初始化失败")
//                }
//            } else {
//                Log.d(TAG, "🚫 Crash采集功能已禁用")
//            }
//
//            // 3. ANR采集功能验证
//            if (configDTO.anrEnabled) {
//                Log.d(TAG, "✅ ANR采集功能已启用")
//                // 由于ANRWatchDog在后台启动，可通过日志间接验证
//                Log.d(TAG, "🔍 正在监控ANR（5秒无响应）")
//            } else {
//                Log.d(TAG, "🚫 ANR采集功能已禁用")
//            }
//
//            // 4. 页面采集功能验证
//            if (configDTO.pageEnabled) {
//                Log.d(TAG, "✅ 页面采集功能已启用")
//                // 验证Activity/Fragment生命周期回调是否注册
//                Log.d(TAG, "🔍 Activity/Fragment生命周期监控已启动")
//            } else {
//                Log.d(TAG, "🚫 页面采集功能已禁用")
//            }
//        } else {
//            Log.d(TAG, "🚫 所有采集功能已关闭（服务端配置disabled）")
//        }
//
//        // 5. 定时任务验证
//        Log.d(TAG, "🔍 检查数据上传定时任务...")
//        if (AppUtils.getLaunchEnabled()) {
//            Log.d(TAG, "✅ 数据上传任务已设置（每分钟执行一次）")
//        } else {
//            Log.e(TAG, "❌ 数据上传任务未启用")
//        }
//    }
}